home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / wsanet8a / wsanet / src / netsrvr.h < prev    next >
C/C++ Source or Header  |  1996-04-08  |  6KB  |  301 lines

  1. /* NetSrvr.H - NetServer control header file */
  2.  
  3. #ifndef NetSrvr_H
  4. #define NetSrvr_H
  5.  
  6. #define IDBMP_SERVER     7000
  7. #define IDBMP_SERVERDOWN 7001
  8. #define IDBMP_SERVERMONO 7002
  9. #define IDBMP_SERVEREGA  7003
  10.  
  11. #define DEFAULT_QUEUESIZE 5
  12.  
  13.     // All of the property indicies
  14. // Enumerations of Properties in NetServer_Properties[]
  15. // MUST BE IN SAME ORDER
  16. enum enum_netserver_props
  17. {
  18.     /* Standard properties */
  19.  IPROP_NETSERVER_CTLNAME,
  20.  IPROP_NETSERVER_PARENT,
  21.  IPROP_NETSERVER_INDEX,
  22.  IPROP_NETSERVER_TOP,
  23.  IPROP_NETSERVER_LEFT,
  24.  IPROP_NETSERVER_TAG,
  25.  IPROP_NETSERVER_HWND,
  26.  
  27.  IPROP_NETSERVER_ABOUT,
  28.  IPROP_NETSERVER_SOCKET,
  29.  IPROP_NETSERVER_LISTEN,
  30.  IPROP_NETSERVER_LOCALPORT,
  31.  IPROP_NETSERVER_LOCALSERVICE,
  32.  IPROP_NETSERVER_ERRORNUMBER,
  33.  IPROP_NETSERVER_ERRORMESSAGE,
  34.  IPROP_NETSERVER_QUEUESIZE,
  35.  IPROP_NETSERVER_VERSION,
  36.  IPROP_NETSERVER_DEBUG
  37. };
  38.  
  39.  
  40. // Enumerate the Events in NetServerEvents[]
  41. // MUST BE IN SAME ORDER
  42. enum enum_server_events
  43. {
  44.  IEVENT_NETSERVER_ONACCEPT,
  45.  IEVENT_NETSERVER_ONERROR
  46. };
  47.  
  48.  
  49. // Errors sent back to VB (and .RC identifiers)
  50. #define ERR_None                0
  51.  
  52.     // Returnable Errors within VB
  53. #define ERR_OUTOFMEMORY         7
  54.  
  55.     // NetServer's Control structure
  56. typedef struct tagNETSERVER
  57. {
  58.  BOOL   bListen;
  59.  SOCKET sSocket;
  60.  SHORT  sLocalPort;
  61.  SHORT  sErrorNumber;
  62.  SHORT  sQueueSize;
  63. } NETSERVER;
  64.  
  65. typedef NETSERVER FAR * LPNETSERVER;
  66.  
  67.  
  68. #ifdef NetSrvr_C
  69.  
  70. typedef struct tagONERRORPARMS
  71. {
  72.  SHORT FAR *ErrorNumber;
  73.  LPVOID Index;
  74. } ONERRORPARMS;
  75.  
  76. #endif /* NetSrvr_C */
  77.  
  78.  
  79. typedef struct tagONACCEPTPARMS
  80. {
  81.  SHORT FAR *RemotePort;
  82.  HLSTR PeerAddr;
  83.  SHORT FAR *Socket;
  84.  LPVOID Index;
  85. } ONACCEPTPARMS;
  86.  
  87.  
  88. #ifdef WSANet_C
  89.  
  90.     // Anti-Ugly code macro
  91. #define VBGETNETSERVEROFFSET(arg) ((USHORT)&(((NETSERVER *)0)->arg))
  92.  
  93.     // About property
  94. PROPINFO serverProperty_About =
  95. {
  96.  "About",
  97.  DT_SHORT | PF_fGetMsg | PF_fSetMsg | PF_fNoRuntimeW
  98.  | PF_fGetHszMsg | PF_fNoInitDef,
  99.  0,           // DUMMY! (we handle set/get with messages)
  100.  0, 0, NULL, 0
  101. };
  102.  
  103.     // Socket property - the actual socket
  104. PROPINFO serverProperty_Socket =
  105. {
  106.  "Socket",
  107.  DT_SHORT | PF_fGetData | PF_fSetMsg | PF_fNoInitDef,
  108.  VBGETNETSERVEROFFSET(sSocket),
  109.  0, 0, NULL, 0
  110. };
  111.  
  112.     // Listen property
  113. PROPINFO serverProperty_Listen =
  114. {
  115.  "Listen",
  116.  DT_BOOL | PF_fGetData | PF_fSetMsg | PF_fNoInitDef,
  117.  VBGETNETSERVEROFFSET(bListen),
  118.  0, 0, NULL, 0
  119. };
  120.  
  121.     // LocalPort Property - TCP port on the Local host
  122. PROPINFO serverProperty_LocalPort =
  123. {
  124.  "LocalPort",
  125.  DT_SHORT | PF_fGetData | PF_fSetMsg |
  126.      PF_fNoInitDef,
  127.  VBGETNETSERVEROFFSET(sLocalPort),
  128.  0, 0, NULL, 0
  129. };
  130.  
  131.     // LocalService Property - Service name for LocalPort
  132. PROPINFO serverProperty_LocalService =
  133. {
  134.  "LocalService",
  135.  DT_HSZ | PF_fGetMsg | PF_fSetMsg | PF_fNoInitDef,
  136.  0,            // DUMMY! (we handle set/get with messages)
  137.  0, 0, NULL, 0
  138. };
  139.  
  140.     // ErrorNumber Property
  141. // Hold the last WSAGetLastError() or a NetServer specific error
  142. PROPINFO serverProperty_ErrorNumber =
  143. {
  144.  "ErrorNumber",
  145.  DT_SHORT | PF_fSetData | PF_fGetData |
  146.     PF_fNoInitDef,
  147.  VBGETNETSERVEROFFSET(sErrorNumber),
  148.  0, 0, NULL, 0
  149. };
  150.  
  151.     // ErrorMessage Property
  152. // Hold the last ErrorNumber's error message
  153. PROPINFO serverProperty_ErrorMessage =
  154. {
  155.  "ErrorMessage",
  156.  DT_HSZ | PF_fSetMsg | PF_fGetMsg |
  157.     PF_fNoInitDef,
  158.  0,           // DUMMY! (we handle set/get with messages)
  159.  0, 0, NULL, 0
  160. };
  161.  
  162.     // QueueSize Property
  163. PROPINFO serverProperty_QueueSize =
  164. {
  165.  "QueueSize",
  166.  DT_SHORT | PF_fSetMsg | PF_fGetData | PF_fSaveData,
  167.  VBGETNETSERVEROFFSET(sQueueSize),
  168.  0, DEFAULT_QUEUESIZE, NULL, 0
  169. };
  170.  
  171.     // Version Property
  172. // Show the Version information.
  173. PROPINFO serverProperty_Version =
  174. {
  175.  "Version",
  176.  DT_HSZ | PF_fSetMsg | PF_fGetMsg |
  177.     PF_fNoInitDef,
  178.  0,           // DUMMY! (we handle set/get with messages)
  179.  0, 0, NULL, 0
  180. };
  181.  
  182.     // Debug Property
  183. // Show the Debug sockopt() state
  184. PROPINFO serverProperty_Debug =
  185. {
  186.  "Debug",
  187.  DT_BOOL | PF_fSetMsg | PF_fGetMsg |
  188.     PF_fNoInitDef,
  189.  0,           // DUMMY! (we handle set/get with messages)
  190.  0, 0, NULL, 0
  191. };
  192.  
  193.     // All of the VB1.00 properties - in dialog order
  194. PPROPINFO NetServer_Properties[] =
  195. {
  196.  PPROPINFO_STD_CTLNAME,
  197.  PPROPINFO_STD_PARENT,
  198.  PPROPINFO_STD_INDEX,
  199.  PPROPINFO_STD_TOP,
  200.  PPROPINFO_STD_LEFT,
  201.  PPROPINFO_STD_TAG,
  202.  PPROPINFO_STD_HWND,
  203.  
  204.  &serverProperty_About,
  205.  &serverProperty_Socket,
  206.  &serverProperty_Listen,
  207.  &serverProperty_LocalPort,
  208.  &serverProperty_LocalService,
  209.  &serverProperty_ErrorNumber,
  210.  &serverProperty_ErrorMessage,
  211.  &serverProperty_QueueSize,
  212.  &serverProperty_Version,
  213.  &serverProperty_Debug,
  214.  NULL
  215. };
  216.  
  217. WORD serverParamtypes_OnError[] = { ET_I2 };
  218.  
  219. EVENTINFO serverEvent_OnError =
  220. {
  221.  "OnError",
  222.  1,
  223.  2,
  224.  serverParamtypes_OnError,
  225.  "iErrorNumber As Integer"
  226. };
  227.  
  228. WORD serverParamtypes_OnAccept[] = { ET_I2 , ET_HLSTR, ET_I2 };
  229.  
  230. EVENTINFO serverEvent_OnAccept =
  231. {
  232.  "OnAccept",
  233.  3,
  234.  6,
  235.  serverParamtypes_OnAccept,
  236.  "Socket As Integer, PeerAddr As String, RemotePort As Integer"
  237. };
  238.  
  239.     // The NetServer Events listed in order
  240. PEVENTINFO NetServer_Events[] =
  241. {
  242.  &serverEvent_OnAccept,
  243.  &serverEvent_OnError,
  244.  NULL
  245. };
  246.  
  247.     // The MODEL structure for the NetClient control (VB1.00)
  248. MODEL modelNetServer =
  249. {
  250.  VB100_VERSION,
  251.  MODEL_fDesInteract | MODEL_fLoadMsg,
  252.  (PCTLPROC)NetServerCtlProc,
  253.  CS_VREDRAW | CS_HREDRAW,
  254.  WS_CHILD | WS_VISIBLE,
  255.  sizeof(NETSERVER),
  256.  IDBMP_SERVER,
  257.  "NetServer",
  258.  "NetServer",
  259.  NULL,
  260.  NetServer_Properties,
  261.  NetServer_Events,
  262.  IPROP_NETSERVER_LISTEN,
  263.  IEVENT_NETSERVER_ONACCEPT
  264. };
  265.  
  266. #define MODELLIST_NETSERVER (LPMODEL)&modelNetServer
  267.  
  268.  
  269. static WORD wNetServerHelpProps[] =
  270. {
  271.  PROPERTY_NAME,
  272.  PROPERTY_PARENT,
  273.  PROPERTY_INDEX,
  274.  PROPERTY_TOP,
  275.  PROPERTY_LEFT,
  276.  PROPERTY_TAG,
  277.  PROPERTY_HWND,
  278.     /* Custom properties */
  279.  
  280.  PROPERTY_ABOUT,
  281.  NS_PROP_SOCKET,
  282.  NS_PROP_LISTEN,
  283.  NS_PROP_LOCALPORT,
  284.  NS_PROP_LOCALSERVICE,
  285.  NS_PROP_ERRORNUMBER,
  286.  NS_PROP_ERRORMESSAGE,
  287.  NS_PROP_QUEUESIZE,
  288.  NS_PROP_VERSION,
  289.  NS_PROP_DEBUG
  290. };
  291.  
  292. static WORD wNetServerHelpEvents[] =
  293. {
  294.  NS_EVNT_ONACCEPT,
  295.  NS_EVNT_ONERROR
  296. };
  297.  
  298. #endif /* WSANet_C */
  299.  
  300. #endif /* NetSrvr_H */
  301.